1. Field of Use
The present invention relates to methods and apparatus for initializing system state in a data processing system, in particular for resetting a system memory when power is applied to the system and, more particularly, when power is recovered after a power interrupt.
2. Prior Art
A recurring problem in data processing systems of the prior art is that of re-initializing or resetting the system state when power is applied to the system, either at initial system start-up or upon recovery of power after a power interrupt. This problem is made more complex, in that most systems include a "battery back-up" power supply to provide power to certain critical parts of the system during temporary power interruptions, such as the system memory. Battery back-up power to the system memory is used to power the memory elements storing data and the memory refresh circuitry which, as is well known, refreshes data in memory to prevent erosion of the data.
As a result of the use of battery back-up to prevent loss of memory data during power interrupts, there is a major difference between initialization of the system at initial power-on and re-initialization of the system at the end of a power interruption. For example, and as described, battery back-up power is provided to the memory data storage elements and to the memory refresh circuitry, but is usually not provided to other portions of the memory controller circuitry, that is, to the circuitry which controls memory operations during normal system power-on operation. As such, the memory control circuitry must be reset, or reinitialized, at the end of a power interrupt in such a manner as not to disrupt or conflict with the memory refresh operations which have been supported by battery back-up power during the power interruption.
The above is not a problem in certain circumstances, for example, at initial system start-up, because there is no data stored in memory to be protected. Also, it is possible, that recovery of the system after a power interrupt will require complete re-initialization of the memory in the same manner as an initial system start-up. For example, it is possible that a power interruption has continued longer than the period during which batter back-up may provide power. Battery back-up power to the memory elements and refresh circuits would thereby fail, resulting in a loss of stored data.
It is also possible that the power interruption may have occurred in such a manner as to disrupt the refresh operations, thereby causing loss of data and again requiring that the memory be completely re-started. In both cases, the system re-start will also require re-initialization of the memory refresh operations.
It has proven difficult in the prior art to provide a power interrupt re-start capability which can reliably distinguish between a power interrupt condition and an initial start-up condition. It has also proven difficult to provide a power interrupt capability which can distinguish between the case wherein the data in memory has been preserved and the cases wherein the data has been lost, and which can take the corresponding appropriate steps to re-start the memory.
Finally, it has proven difficult to provide a power restart system which reliably avoids disrupting or conflicting with memory refresh operations which have been continued under battery back-up during a power interruption. Most systems have used resistor-capacitor type circuits to detect the resumption of power and to reset the memory control circuits when power has been re-established; this approach has proven unreliable because the resistor-capacitor type circuits provide a reset command to the memory control circuits at variable times, so that the reset, which includes the refresh circuitry, can disrupt the state of operation of the refresh circuitry and thereby result in a loss of data.